<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of util
 *
 */
class util {

    /**
     * @param $formart ex: "%Y/%m/%d %H" return "+ hour"
     */
//            case self::vendedores:
//                $rolAsignado = true;
//                break;
//            case self::supervisores:
//                $rolAsignado = true;
//                break;
    const Administrador = "Administrador"; //1
    const Supervisor = "Supervisor"; //2
    const Vendedores = "Vendedores"; //3

    public static function formartModify($formart, $number = 1, $modify = "") {
        $f = trim($formart);
        $f = substr($f, -1, 1);
        if ($f == "s") {
            return $modify . "$number seg";
        } else if ($f == "i") {
            return $modify . "$number minutes";
        } else if ($f == "H") {
            return $modify . "$number hour";
        } else if ($f == "d") {
            return $modify . "$number day";
        } else if ($f == "m") {
            return $modify . "$number month";
        } else if ($f == "Y") {
            return $modify . "$number year";
        } else {
            return $modify . "$number day";
        }
        return false;
    }

    /*
     * segundos minuto = 60
     * segundos hora = 3600
     * segundos día = 86400
     * segundos mes = 2592000
     * segundos año = 31104000
     */

    public static function interval_date($inicio, $fin) {
        //formateamos las fechas a segundos tipo 1374998435
        $diferencia = strtotime($fin) - strtotime($inicio);
        //comprobamos el tiempo que ha pasado en segundos entre las dos fechas
        //floor devuelve el número entero anterior, si es 5.7 devuelve 5
        if ($diferencia < 60) { //segundos
            return "%Y/%m/%d %H:%i:%s";
        } else if ($diferencia > 60 && $diferencia < 3600) { // minutos
            return "%Y/%m/%d %H:%i";
//            return "minutos " . floor($diferencia / 60);
        } else if ($diferencia > 3600 && $diferencia < 86400) { // horas
            return "%Y/%m/%d %H";
//            return "horas " . floor($diferencia / 3600);
        } else if ($diferencia > 86400 && $diferencia < 2592000) { // dias
            return "%Y/%m/%d";
//            return "dias " . floor($diferencia / 86400);
        } else if ($diferencia > 2592000 && $diferencia < 31104000) { //meses
            return "%Y/%m";
//            return "meses " . floor($diferencia / 2592000);
        } else if ($diferencia > 31104000) { // años
            return "%Y";
//            return "años " . floor($diferencia / 31104000);
        } else {
            return false;
        }
        return false;
    }

    /**
     * Debe ser declarada en php <= 5.4+
     * Esta función lo que hace es sacar la columna deseada de un a array asociativo
     * @param {array compuesto de preferencia} $array
     * @param {int o string} $nombre_columna
     * @return array
     */
    public static function array_column($array, $nombre_columna) {
        $resultado = array();
        if (!is_array($array))
            return $resultado;
        foreach ($array as $hijos) {
            if (!is_array($hijos))
                continue;
            if (array_key_exists($nombre_columna, $hijos)) {
                $resultado[] = $hijos[$nombre_columna];
            }
        }
        return $resultado;
    }

    public function mostrarInformacion($reporteData) {
        foreach ($reporteData as $datas) {
            foreach ($datas['data'] as $key => $value) {
//                var_dump($value);
                if ($value > 0) {
                    return true;
                }
            }
        }
        return false;
    }

    public static function FechaActual() {
        $tz_object = new DateTimeZone('America/Guayaquil');
        $datetime = new DateTime();
        $datetime->setTimezone($tz_object);
        return $datetime->format('Y-m-d H:i:s');
    }

    public static function FormatDate($fechaAt, $tipo) {
        if ($fechaAt) {
            $date = str_replace('/', '-', $fechaAt);
            $fechaAt = date($tipo, strtotime($date));
            return $fechaAt;
        }
    }

    public static function getMenuAdministracionGestionUsuarios($nameRol) {
        $rolAsignado = false;
        switch ($nameRol) {
            case self::Administrador:
                $rolAsignado = true;
                break;
        }
        return $rolAsignado;
    }
    public static function getMenuAdministracionGestionVendedores($nameRol) {
        $rolAsignado = false;
        switch ($nameRol) {
            case self::Vendedores:
                $rolAsignado = true;
                break;
        }
        return $rolAsignado;
    }
    public static function getMenuAdministracionGestionSupervisore($nameRol) {
        $rolAsignado = false;
        switch ($nameRol) {
            case self::Supervisor:
                $rolAsignado = true;
                break;
        }
        return $rolAsignado;
    }

}
